//引入express模块
const express = require('express');
//引入body-parser 
const bodyParser = require('body-parser');
//引入cookie-parser 
const cookieParser = require('cookie-parser');
//引入express-session对象
const express_session = require('express-session');
//创建服务器对象
const app = express();

//解析 req.body
app.use(bodyParser.urlencoded({extended:true}));
//解析cookie-parser中的值
app.use(cookieParser());

//使用express_session
app.use(express_session({
    secret:'miyao',//设置密钥
    cookie:{
        maxAge:30*1000//设置过期时间
    },
    resave:true,//强制保存
    saveUninitialized:false//当上一次设置session时要填 之前没设置过session可以不写
}))
let user = {};//全局变量，值一直存在  他是用来接收登录成功的值 登录成功时的用户名和密码  目的是用来实现1、判断注册、登录的值是否匹配；2、用来判断与cookie中储存的值是否一致；实现免登录或者重新登录
//register
app.post('/register',(req,res)=>{
    user = req.body;
    res.send('注册成功！');
})

//login
app.post('/login',(req,res)=>{
    if(req.body.name == user.name && req.body.password == user.password){
        req.session.user = req.body;//登录成功返回的用户值和密码
        res.send('登录成功！')
    }else{
        res.send('用户名或者密码错误！')
    }
})

//测试能否能查到session中的数据
app.get('/test',(req,res)=>{
    // console.log(req.session);
    if(req.session){
        if(req.session.user.name == req.body.name && req.session.user.password == req.body.password){
            res.send('登录成功！')
        }else{
            res.send('用户名或密码错误!');
        }
    }else{
        res.send('用户名或密码错误!');
    }
    
})


//启动服务器
app.listen(3030,(err)=>{
    if(!err){
        console.log('服务器启动成功！');
    }else{
        console.log(err);
    }
})
/*
    思路：
        注册页面  通过post请求收集  用户名和密码 放到全局变量user中 目的是为了与登录时的用户名、密码作比较；
        登录页面  通过post请求收集req.body 与user用户名、密码作比较 一致就登陆成功  不一致就用户名和密码错误；

*/